mod mod_a{
    #[derive(Debug)]
    pub struct A{
        pub number:i32,
        name:String,
    }

    impl A{
        pub fn new_a() -> A{
            A{
                number:1,
                name:String::from("one")
            }
        }

        pub fn print_a(&self){
            println!("{:?}",self);
        }
    }

    pub mod mod_b{
        pub fn print_b(){
            println!("B");
        }

        pub mod mod_c{
            pub fn print_c(){
                println!("C");
                //引用父级方法
                super::print_b();
            }
        }
    }
}
use crate::mod_a::A;
fn main() {
    let a = A::new_a();
    a.print_a();

    mod_a::mod_b::mod_c::print_c();

    println!("Hello, world!");
}
